package com.tencent.wxcloudrun.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;

/**
 * 优惠券批次
 * @TableName coupon_batch
 */
@TableName(value ="coupon_batch")
@Data
public class CouponBatch implements Serializable {
    /**
     * 
     */
    @TableId(type = IdType.AUTO)
    private Integer couponBatchId;

    /**
     * 
     */
    private String couponName;

    /**
     * 本批次要发放的优惠券总数量，如果值为null则表示无上限
     */
    private Integer totalCount;

    /**
     * 已领取的优惠券数量
     */
    private Integer assignCount;

    /**
     * 已使用的优惠券数量
     */
    private Integer usedCount;

    /**
     * 1：满减；2：打折（打折没有门槛）；3：送东西；
     */
    private Integer limitCouponType;

    /**
     * 0：所有商品都可用；1：除特价商品外都可用；
     */
    private Integer limitGoodsType;

    /**
     * 0：没有任何条件，所有用户所有门店都可用；1：只针对新用户；2：只针对某几个城市；3：只针对某几个门店；4：生日；
     */
    private Integer limitUsedType;

    /**
     * 满减的门槛（金额），如果是值为null或0则表示没有门槛
     */
    private Integer threshold;

    /**
     * 优惠金额
     */
    private Integer amount;

    /**
     * 折扣，计算时记得除以100
     */
    private Integer discount;

    /**
     * 赠送的商品id，多选1，用英文逗号,分隔
     */
    private String giveGoodsIds;

    /**
     * 可用门店
     */
    private String shopIds;

    /**
     * 可用城市
     */
    private String cityIds;

    /**
     * 开始发放时间，值为null则表示现在立马开始
     */
    private Date assignStartTime;

    /**
     * 结束发放时间，值为null表示一直发放，永远不结束
     */
    private Date assignEndTime;

    /**
     * 时效类型：0：永远有效；1：绝对时效（领取后XXX-XXX时间段有效）； 2：相对时效（领取后N天有效）；
     */
    private Integer validType;

    /**
     * 
     */
    private Date validStartTime;

    /**
     * 
     */
    private Date validEndTime;

    /**
     * 
     */
    private Integer validDays;

    /**
     * 0：正常；1：删除；
     */
    private Integer isDeleted;

    /**
     * 
     */
    private Date createTime;

    /**
     * 
     */
    private Date updateTime;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}